.0МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет “Львівська політехніка”
/
Звіт
До лабораторної роботи № 6
На тему: «РОБОТА З МАСИВАМИ В С++»
З дисципліни «Основи програмування»
Лектор:
1.МЕТА РОБОТИ
Мета роботи – навчитися організовувати такі структури даних як масиви та освоїти основні методи програмування алгоритмів обробки масивів даних засобами мови С++.
2.ТЕОРЕТИЧНІ ВІДОМОСТІ
1. Що таке масив? Які типи масивів Ви знаєте?
Масив – це сукупність однотипних змінних, розміщених у послідовно пронумерованих суміжних комірках пам'яті. Масиви бувають статичні, фіксовані автоматичні та динамічні.
2. Який загальний вигляд опису одновимірного масиву? А двовимірного?
Загальний вигляд одновимірного масиву:
тип ім’я_масиву[розмір]
Загальний вигляд двовимірного масиву:
тип ім’я_масиву [розмір1][розмір2]
3. Що таке вказівник? Яка відмінність вказівника від звичайної змінної?
Вказівник— тип даних в комп'ютерних . Значення вказівника посилається на інше значення, що записане будь-де в пам'яті комп'ютера (фактично містить його адресу).
4. Яку роль відіграє ім’я масиву? Як можна його використати?
Ім’я масиву є вказівником на його перший елемент. Тому ім'я масиву можна використати в якості бази для зміщення вказівника..
5. Як здійснюється ініціалізація масиву? Які особливості ініціалізації багатовимірних масивів?
Ініціалізацію масиву можна здійснити: при оголошенні масиву або ввести значення з клавіатури. Ініціалізація двовимірного масиву здійснюється по рядках.
6. Опишіть відомі Вам способи доступу до елементів одновимірного масиву.
У С++ доступ до елементів масиву здійснюється за допомогою спеціального оператора []. В квадратних дужках вказується індекс елемента масиву, а перед ними – його ім'я. Також для доступу до елементів використовують вказівники.
7. Як можна організувати контроль виходу індексів за межі допустимого діапазону?
Якщо вказати в квадратних дужках неправильний розмір, все одно компілятор автоматично обчислить правильний розмір. Наприклад, при оголошенні:
int numbs[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8}
Компілятор «вважатиме», що масив містить 9 елементів. Однак, при цьому виникне проблема при наступному присвоєнні:
numbs[10] = 10;
Компілятор розпізнає помилку, коли присвоюється більше чисел, ніж задано елементів масиву:
int numbs[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
При цьому видається повідомлення «Занадто багато ініціалізаторів».
8. Як зберігаються в пам’яті багатовимірні масиви?
Багатовимірні масив, як і будь-які інші, зберігається в послідовних комірках пам'яті, а тому його можна представити як одномірний, пам’ятаючи, що ім'я масиву – це вказівник на його перший елемент.
9. Як визначити скільки оперативної пам’яті займає масив?
Об’єм пам'яті, який займає масив, рівний добутку розміру типу елементів масиву та кількості елементів в масиві. Наприклад, якщо масив містить 16 чисел типу int і тип int займає в пам’яті 2 байти, то цілий масив займатиме 2×16 = 32 байти.
10. Як здійснюється доступ до елементів багатовимірного масиву за допомогою індексів? А за допомогою вказівників?
Звертаються до елементів масиву так:
ім’я_масиву [індекс1][індекс2]
Або нехай двовимірний масив mas має розмірність n*m. Тоді елемент mas[i][j] можна представити як *(*mas+n*i+j). З іншого боку, вираз mas[i] є вказівником на перший елемент і-ого рядка, а тому *[mas[i]+j] – це j-ий елемент і-ого рядка.
11. Напишіть два різних оператора на С++, які б присвоювали вказівнику ptr адресу першого елемента четвертого рядка двовимірного масиву x[5]7].
*(*x+5*1+4) або *[х[1]+4]
12. Напишіть два різних оператора на С++, які інкрементують шостий елемент масиву array, використовуючи механізм індексації та вказівника зі зміщенням, відповідно.
cout « —array[5]; cout « —*(array + 5);
3.ІНДИВІДУВАЛЬНЕ ЗАВДАННЯ
ДОДАТОК 1
Написати програму для обро...